package com.ruoyi.ring.mapper;

import com.ruoyi.ring.domain.RingHrv;
import com.ruoyi.ring.domain.dto.GeneralSecondDTO;
import com.ruoyi.ring.domain.dto.RingHrvDTO;
import com.ruoyi.ring.domain.vo.GeneralGroupVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 心率变异性Mapper接口
 * 
 * @author liuwp
 * @date 2025-08-22
 */
public interface RingHrvMapper 
{
    /**
     * 查询心率变异性
     * 
     * @param id 心率变异性主键
     * @return 心率变异性
     */
    public RingHrv selectRingHrvById(Long id);

    /**
     * 查询心率变异性列表
     * 
     * @param ringHrv 心率变异性
     * @return 心率变异性集合
     */
    public List<RingHrv> selectRingHrvList(RingHrv ringHrv);

    /**
     * 可以业务主键查询一条心率变异性
     *
     * @param ringHrv 心率变异性
     * @return 心率变异性集合
     */
    public RingHrv selectOneRingHrv(RingHrv ringHrv);

    /**
     * 新增心率变异性
     * 
     * @param ringHrv 心率变异性
     * @return 结果
     */
    public int insertRingHrv(RingHrv ringHrv);

    /**
     * 修改心率变异性
     * 
     * @param ringHrv 心率变异性
     * @return 结果
     */
    public int updateRingHrv(RingHrv ringHrv);

    /**
     * 条件修改心率变异性
     *
     * @param ringHrv 心率变异性
     * @param ringHrv 心率变异性条件
     * @return 结果
     */
    public int updateRingHrvCondition(@Param("ringHrv") RingHrv ringHrv, @Param("ringHrvCondition") RingHrv ringHrvCondition);

    /**
     * 删除心率变异性
     * 
     * @param id 心率变异性主键
     * @return 结果
     */
    public int deleteRingHrvById(Long id);

    /**
     * 条件删除心率变异性
     *
     * @param ringHrv 心率变异性
     * @return 结果
     */
    public int deleteRingHrvByCondition(RingHrv ringHrv);

    /**
     * 批量删除心率变异性
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRingHrvByIds(Long[] ids);

    /**
     * 查询心率变异性列表
     *
     * @param ringHrvDTO 心率变异性
     * @return 心率变异性集合
     */
    public List<RingHrv> queryRingHrvList(RingHrvDTO ringHrvDTO);

    /**
     * 可以业务主键查询一条心率变异性
     *
     * @param ringHrvDTO 心率变异性
     * @return 心率变异性集合
     */
    public RingHrv queryOneRingHrv(RingHrvDTO ringHrvDTO);

    /**
     * 查询压力详情列表
     *
     * @param secondDTO 压力详情
     * @return 压力详情集合
     */
    List<RingHrv> queryHrvList(@Param("secondDTO") GeneralSecondDTO secondDTO);

    /**
     * 查询压力详情列表
     *
     * @param secondDTO 压力详情
     * @return 压力详情集合
     */
    List<GeneralGroupVO> queryHrvDetailList(@Param("secondDTO") GeneralSecondDTO secondDTO);

    /**
     * 四级页 当天往前取7条数据
     */
    List<RingHrv> queryHrvSevenInfo(@Param("deviceSn") String deviceSn ,@Param("date") Date date);
}
